package com.builder;

import com.builder.impl.AcerBuilder;
import com.builder.impl.DellBuilder;

/**
 * 建造模式是对象的创建模式。建造模式可以将一个产品的内部表象（internal
 * representation）与产品的生产过程分割开来，从而可以使一个建造过程生成具有不同的内部表象的产品对象。
 * 
 * 产品的内部表象 　　一个产品常有不同的组成成分作为产品的零件，这些零件有可能是对象，也有可能不是对象，它们通常又叫做产品的内部表象（internal
 * representation
 * ）。不同的产品可以有不同的内部表象，也就是不同的零件。使用建造模式可以使客户端不需要知道所生成的产品有哪些零件，每个产品的对应零件彼此有何不同
 * ，是怎么建造出来的，以及怎么组成产品。
 * 
 * @author Administrator
 *
 */
public class Test {

	public static void main(String[] args) {
		Builder acerBuilder = new AcerBuilder();
		Director director = new Director(acerBuilder);
		director.construct();
		Product product = acerBuilder.getFinalResult();
		product.show();
		
		System.out.println();

		Builder dellBuilder = new DellBuilder();
		director = new Director(dellBuilder);
		director.construct();
		product = dellBuilder.getFinalResult();
		product.show();
	}

}
